package com.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

@WebFilter({"/book/add", "/book/del", "/book/update"})
public class PrivateFilter implements Filter {
    /**
     * 创建私有的过滤器，目的是为了显示某些功能的使用
     */
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        // 创建 request 域
        HttpServletRequest req = (HttpServletRequest) request;
        // 判断 session 的用户是否等于空，如果为空就显示提示信息
        if (req.getSession().getAttribute("user") == null) {
            // 把信息存到 message 中处理
            req.setAttribute("message", "您没有权限做这样的事情");
            // 页面转发
            req.getRequestDispatcher("/book/bookResult.jsp").forward(request, response);
            // 返回
            return;
        }

        // 做限制这个一定要写上，不然全局项目都找不到
        // 他的作用是将请求转发给过滤器链上的下一个对象（大概理解为放行）
        chain.doFilter(request, response);
    }

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void destroy() {

    }
}
